The present invention relates to a bar code reader and, more particularly, to a bar code data train synthesis bar code reader for reading a bar code by synthesizing fragmentary pulse width data trains obtained through fragmentary scanning of the bar code.
In a prior art bar code data train synthesis bar code reader, fragmentary pulse width data trains obtained by one bar code scanning and the next scanning, i.e., two successive fragmentary pulse width data trains, are compared with each other, and a state in which the two data trains are most identical, i.e., a maximum identity degree state, is determined by shifting the data trains relative to each other for each go scanning. This state is used as a synthesis state, in which the two data trains are combined. With successive scannings, the resultant data train is successively extended, and finally a complete bar code data train containing the entire bar code is obtained.
Such bar code readers are disclosed in, for example, Japanese Patent Publication No. 59-9946, Japanese Laid-Open Patent Publication No. 64-86283, Japanese Laid-Open Patent Publication No. 64-86284, Japanese Laid-Open Patent Publication No. 2-170290, and Japanese Laid-Open Patent Publication 4-15774.
FIG. 4 is a block diagram showing a prior art bar code data train synthesis bar code reader. FIG. 5 is a view for describing a synthesis scheme in the prior art bar code data train synthesis bar code reader. In the prior art bar code data train synthesis bar code reader shown in FIG. 4, a fragmentary pulse width data train obtained as a result of one bar code scanning and one obtained as a result of the next scanning, are stored in a data shifter 43. A comparator 44 executes identify degree determination by comparing these fragmentary pulse width data trains. This comparing process is performed by shifting each data to determine the shift state which gives the maximum identity degree state, i.e., the synthesis state. A synthesizer 45 combines the two fragmentary pulse width data trains in the maximum identity degree state, and with successive scannings, the fragmentary pulse width data are successively extended to obtain a complete bar code data train containing the entire bar code.
The operation will now be described with reference to FIG. 5. As a result of comparison of an N-th and an (N+1)th scanning fragmentary pulse width data trains D.sub.N and D.sub.N+1, identity degree A is obtained. As a result of comparison of the data train D.sub.N+1. and a data train D.sub.N+1 (1) which is obtained by shifting the data train D.sub.N+1. to an extent corresponding to one bar code, identify degree B is obtained. As a result of comparison of the data train D.sub.N+1. and a data train D.sub.N+1 (2) which is obtained by shifting the data train D.sub.N+1 to an extent corresponding to two bar codes, identity degree C is obtained. In the comparison, two vertically aligned binary data pieces of either "0" or "1", as shown in the figure, are compared. The identical degree is represented by the number of identical binary data is piece pairs. The binary data pieces of "0" or "1" in each fragmentary pulse width data train are actual pulse width data, with each representing a thin or a thick bar of a bar code. Specifically, the binary data piece of "0" represents a thin bar, and the binary data piece of "1" represents a thick bar.
The identity degree A, which is obtained without any data shift, is 4 in value; the identify degree B, which is obtained as a result of one-data-piece shift, is 9, the identity degree C; and which is obtained as a result of a two-data-piece shift, is 2. In this case, the maximum identity degree is obtained with one-data-piece shift. Synthesis is thus performed in one-data-piece shift state of one of the data trains which are used. That is, the N-th scanning fragmentary pulse width data train D.sub.N and the data train D.sub.N+1 (1) obtained as a result of one-data-piece shift of the (N+1)-th scanning fragmentary pulse width data train D.sub.N+1 are used for synthesis. The overlap of the (N+1)-th scanning fragmentary pulse width data train over the N-th scanning one, results in extension of the latter by one data piece. Successive fragmentary pulse width data trains are combined one after another with resultant successive data train extension, and in this way a complete bar code pulse width data train is obtained, which contains the entire bar code.
In the above prior art bar code data train synthesis bar code reader, the maximum identity degree state, i.e., the synthesis state, in which the fragmentary pulse width data trains are combined, is determined through comparison and shifting thereof on the basis of the pulse width data pieces in the data trains.
With fragmentary pulse width data obtained by scanning a bar code containing a succession of the same numerals or characters, the fragmentary pulse width data train that is obtained has a succession of the same patterns because of the scanning of the same pattern of black and white bars representing the same numeral or character. In this case, with the prior art bar code data train synthesis bar code reader, the maximum identity degree is increased by increasing the number of shifts since the synthesis state is obtained or the complete overlap is obtained by shifting by the recurring cycle portion of the pulse width data, i.e., a portion corresponding to one numeral or character on the bar code label. Therefore, it has been difficult to obtain a correct synthesis state. That is, with a bar code which contains a number of resembling portions, it is difficult to obtain a correct synthesis state and accurate reading of the bar code.
In the case of scanning a bar code label having a low height level, the obtained number of data pieces in each fragmentary pulse width data train is reduced, and consequently the identity degree is reduced. This means that the regular synthesis state is not substantially different from the other states, thus making it difficult to obtain a correct synthesis state.